//
//  MLClassPropManager.h
//
//  Created by Molon on 13-12-10.
//  Copyright (c) 2013年 Molon. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface MLClassPropManager : NSObject

+ (instancetype)manager;

/**
 *  获取类的属性和类型列表,不包括父类的
 */
- (NSDictionary *)propToTypesOfClass:(Class)cls;

/**
 *  得到属性和类型列表直到某个父类为止，包括此父类
 */
- (NSDictionary *)propToTypesOfClass:(Class)cls untilSuperClass:(Class)supercls;

/**
 *  得到属性和类型列表直到某个父类为止，可选是否包括此父类
 */
- (NSDictionary *)propToTypesOfClass:(Class)cls untilSuperClass:(Class)supercls ignoreUntilClass:(BOOL)ignoreUntilClass;

/**
 *  检测是否有某属性，其他参数参考上面的三个
 */
- (BOOL)hasKey:(NSString*)key ofClass:(Class)cls;
- (BOOL)hasKey:(NSString*)key ofClass:(Class)cls untilSuperClass:(Class)supercls;
- (BOOL)hasKey:(NSString*)key ofClass:(Class)cls untilSuperClass:(Class)supercls ignoreUntilClass:(BOOL)ignoreUntilClass;

@end
